Graphical user interface for establishing data sharing relationships

ABSTRACT

Enhanced presentation techniques for modeling a connectivity universe associated with a particular user or device are provided. Example embodiments provide a WorldView Display System (a “WVDS”), which automatically organizes a user&#39;s online relationships with entities, such as devices, data collections, services, and people, and provides a user interface for accessing and interacting with these entities. The WVDS automatically determines the universe of objects that the user has relationships with, automatically groups objects having similar measures of access proximity, displays a multi-dimensional representation of these groups of objects on a display device, and provides a uniform user interface for initiating an interaction with any represented object. This abstract is provided to comply with rules requiring an abstract, and it is submitted with the intention that it will not be used to interpret or limit the scope or meaning of the claims.

TECHNICAL FIELD

The present description relates to enhanced presentations and managementof online information and, in particular, to techniques for modeling auser's connectivity relationships with network accessible devices,services, people, and data and to techniques for indicatingunidirectional or bi-directional data sharing relationships betweenobjects, such as objects used in modeling the user's connectivityrelationships.

BACKGROUND

On-line communications have become an increasingly important aspect ofpeople's lives. These communications can take many forms, includingexplicit person-to-person communication such as email, instantmessaging, or other forms of sending electronic messages; communicationwith on-line services such as web sites, email servers, and otherInternet Service Provider (“ISP”) services; and communication with localand remote devices, such as printers, scanners, or fax machines on ahome network or, for example, on-line phones, cameras, PDAs, and otherportable computers or devices.

Managing and communicating with the morass of types of devices andconnections has become difficult and not very “user-friendly” to acasual, or not necessarily technically savvy, user. Interfaces todevices are inconsistent, and the requirements for accessing servicesare not uniform or even well-known. In a typical conventional computingenvironment, a user conducts such communications by locating a userinterface (“UI”) associated with the desired target or task, figuringout how to use it, and then invoking it to conduct the desiredcommunication. For example, to set up access to or to change defaultproperties associated with access to a particular printer, a user isforced to find and invoke a “setup” tool (e.g., a printer configurationtool) from a user interface presented by the underlying operatingsystem, for example the Microsoft Windows™ “desktop.” The setup tooldisplays a series of dialog boxes or other windows, whose user interfacecontrols are dedicated to interacting with the target printer. The useris then forced to find the correct control, dialog, or other UIcomponent to perform a desired operation. If the user can locate theappropriate user interface, recognize it as the needed one, and find theappropriate specific component to invoke, then the user can perform thedesired task. However, for many users, management tools such as this oneare impenetrable black boxes with limited options for control and littleinstruction.

One reason for these difficulties is that the current metaphor foroperating system user interfaces for personal computers is typically an“office” desktop or derivative thereof. The desktop metaphor wasdeveloped in the 1970's and was originally targeted to the officeautomation market. However, the office automation environment for whichthese user interfaces were designed no longer represents a reasonablefacsimile of or metaphor for how many people today incorporate computersin everyday life.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example screen display of an example connectivity universepresented by an example WorldView Display System.

FIG. 2 is an example screen display of a device ring displayed by anexample WorldView Display System.

FIG. 3 is an example screen display of a data collection ring displayedby an example WorldView Display System.

For example, FIGS. 4A and 4B illustrate still images from an examplescreen display of a cycling presentation of an active photo collection.

FIG. 5 is an example screen display of an animated representation of anactive device.

FIG. 6 is an example screen display of a data collection ring with asub-collection ring displayed by an example WorldView Display System.

FIG. 7 is an example block diagram of how components of an exampleWorldView Display System are incorporated in a computer system toprovide a user interface to an example user's universe of devices,collections, and connections.

FIG. 8 is an overview flow diagram of operations performed by an exampleWorldView Display System.

FIG. 9 is an example block diagram of a portion of one internal model ofan example connectivity universe by an example WorldView Display System.

FIG. 10 is an example screen display of an example Buddy Room proximityband.

FIG. 11 is an example screen display of a close-up view of an exampleWeb proximity band.

FIG. 12 is an example screen display of an example Web proximity band.

FIG. 13 is an example screen display of a media view of an exampleWorldView Display System.

FIG. 14 is an example screen display of media viewers presented by amedia view of an example WorldView Display System.

FIG. 15 is an example screen display of objects displayed as a result offiltering a media view of an example WorldView Display System.

FIG. 16 is an example screen display of uber-collections presented by amedia view of an example WorldView Display System.

FIG. 17 is an example screen display of a combined device and media viewof an example WorldView Display System.

FIGS. 18A and 18B are an example flow diagram of proximity bandrendering supported by an example rendering system of a WorldViewDisplay System.

FIG. 19 is an example screen display of a presentation of objectsgrouped by access proximity as displayed by an example WorldView DisplaySystem.

FIG. 20 is an example screen display of an example connectivity universefrom a different viewing angle and level of perspective.

FIG. 21 is an example screen display of a close-up view of a WorldViewDisplay System user interface displayed for an active device.

FIG. 22 is an example screen display of a close-up view of a WorldViewDisplay System user interface displayed for an active collection.

FIG. 23 is an example block diagram of an access control card forconfiguring access rights of a device or a collection for an individual.

FIG. 24 is an example screen display of a data sharing relationshipestablished between two collections.

FIG. 25 is a block diagram of a general purpose computer system forpracticing embodiments of a WorldView Display System.

FIGS. 26A-26F is an example display screen sequence illustratingnavigation into the WorldView Display System from a native operatingsystem user interface.

DETAILED DESCRIPTION

Embodiments described herein provide enhanced computer- andnetwork-based methods, systems, computer-readable instructions, andtechniques for modeling and interacting with a user's universe ofon-line relationships, including, for example, people, devices, content,services, and other entities that are connected to the user, directly orindirectly, via one or more networks. Each entity is associated with theuser through an object, such as a physical or logical device, datacollection, or service that is connected to the network. The objectsassociated with the entities to which a user has or potentially can haverelationships are referred to collectively as a user's connectivityuniverse. Thus, for ease of description, a user's relationships with aset of entities are considered synonymous with the user's relationshipswith the objects that correspond to such entities, and the words“entity” and “object” are used interchangeably unless noted otherwise.

Example embodiments provide a WorldView Display System (“WVDS”), whichautomatically organizes a user's online relationships with such entitiesaccording to similarities of “access proximity” and provides a userinterface for accessing and interacting with these entities and theircorresponding objects. Access proximity is an assessment of the“closeness” of the relationship between an object, such as a device, acollection of data, a service, or other object that corresponds to anentity, and the user, as evaluated according to (or measured by) any oneof a number of characteristics. Example characteristics include:

-   -   physical proximity (e.g., location of the object);    -   prior access history (e.g., access of the object by the user        within a specified period of time);    -   extent to which the object is under the user's control (e.g.,        access rights to the object can be set by the user for the user        and for others; object is hosted on a device controlled by the        user as opposed to remotely hosted);    -   type of device (e.g., a PC, server, PDA, media-oriented device,        such as a camera or phone, etc.);    -   operational characteristics (e.g., object is a public service        such as “Hotmail” or “AOL Instant Messenger,” a        controlled-access device such as a personal computer, a        physical, or a virtual device such as a “Buddy Room” that        contains remotely hosted content);    -   portion of the object that corresponds to the user (e.g.,        percentage of a device occupied by the user's content);    -   network connectivity characteristics (e.g., type of object's        connection to a network such as a wireless connection, object        resides on a network dedicated to the user or resides on a        network dedicated to a controlled-access group that includes the        user, or object resides on a public shared network such as the        Internet).        An assessment of access proximity may be determined, for        example, as numeric values, ranges, the presence or absence or        likeness of certain characteristics, or any other measurements,        evaluations, or heuristics that provide a classification scheme        (i.e., a “taxonomy” of access proximity). Also, other types of        characteristics may be used to assess access proximity and that        combinations of characteristics can also be used.

The WVDS automatically determines the universe of objects that the userhas relationships with, automatically groups objects having similarassessments of access proximity, displays a representation of thesegroups of objects on a display device, and provides a uniform userinterface for initiating an interaction with any displayed (represented)object. For example, the user can activate an object and “zoom in” tosee what data content it contains; invoke a native user interface of theobject (e.g., “open” the object); set up a data sharing relationshipbetween data content; configure access permissions; set attributes forwhat is displayed in conjunction with an object's representation andwhat input is forwarded to a represented device; etc. The user invokesthese operations in a uniform way, that does not rely upon knowledgespecific to the object.

Thus, in one aspect the WVDS provides an operating environment thatmodels a connectivity universe from a user's point of view and thatprovides a metaphor for interacting with objects of potential interestto the user that is on-line centric as opposed to desktop centric. Inaddition, WVDS orients the user to focus on the media and media typesthat are present on devices in the user's connectivity universe asopposed to the configuration settings of particular devices. In anotheraspect, the WVDS provides a navigational model for viewing andinteracting with a three-dimensional representation of the user'sconnectivity universe using graphics and rendering techniques that givean impression of moving (e.g., “flying”) through a virtual world (a 3-Duniverse) to locate, view, activate, and open objects. In yet anotheraspect, the WVDS provides a graphical user interface for easily settingup data sharing relationships between any two objects in a uniformmanner. Other aspects will be apparent and can be gleaned from thedescription that follows.

FIG. 1 is an example screen display of an example connectivity universepresented by an example WorldView Display System. FIG. 1 shows fivedifferent groupings of objects based upon access proximityclassifications, including: My Computer 101; a Home Network group 102, aWireless Devices group 103; an Internet Services group 104; and The Webgroup 105 from a particular user's perspective. Each group is related tothe user through at least one network, in this case a wide area network120 (a “WAN,” e.g., the Internet).

In one embodiment, the WVDS groups objects and displays each group as a“proximity band” in the user's connectivity universe. Each proximityband displays a set of objects that are related to each other, from theuser's perspective, in that they have similar characteristics asmeasured by access proximity. That is, each proximity band correspondsto a different class of access proximity, as assessed by whatevercharacteristic(s) is(are) currently configured for evaluating accessproximity. Each proximity band displays representations of the objectsthat belong to (are grouped in) that band and a representation of thedata content that is present on each such object.

For example, in the example embodiment illustrated in FIG. 1, the WVDSrepresents each of groups 101-105 as a proximity band in the user'sconnectivity universe. Each proximity band displays a representation ofthe objects that are grouped in that proximity band (have similar accessproximity). For example, the proximity band labeled “Home Network” 102displays a representation of four objects (physical devices) 110-113with which the user has a relationship through the user's home localarea network (“LAN”). These devices include a computer system 110representing the “Kids' computer;” a computer system 111 representing“Sue's computer;” and a photo printer 112 and a personal video recorder113 that are shared resources connected to the user's home LAN. Notethat each device is represented by the WVDS as a model of the devicesurrounded by a graphical indicator such as a “device ring,” whichdisplays a “hint” as to the type of content contained or managed by thedevice. The representation of the device, (i.e., the device “model”) mayinclude, for example, an icon, character, symbol, label, drawing, or anyother representation that is indicative of the device. Device rings aredescribed further below with respect to FIG. 2. In the illustratedscenario, physical proximity, device type, prior access history, extentof user control, operational characteristics, and network connectivitycharacteristics have been used to measure similarities of accessproximity. The groups of objects (hence the proximity bands) areautomatically determined by the WVDS relative to the user based uponsimilarities of access proximity characteristics and, in the view of theconnectivity universe illustrated in FIG. 1, are displayed relative to adesignated (host) device associated with the user, such as My Computer101. If a different user initiates a session with the WVDS usingcomputer system 101, if the same user initiates a session but designatesa different host device or different access proximity characteristics,or if the user designates a different view that may not includedisplaying or designating a host device or certain proximity bands, thenthe layout displayed by the WVDS will be accordingly adjusted.

In one embodiment, each device representation is displayed along with adevice ring that simultaneously shows the contents (as data collections)associated with that particular device. Other embodiments mayincorporate different types of graphical indicators, which may partiallysurround or totally surround a device representation. The devicerepresentation may indicate a physical or virtual device, such as avirtual “device” that represents a means to get access to a relationshipsuch as another user's data collection. Other embodiments may requirethe user to navigate to a closer “level of perspective” (for example, by“zooming in” to the object) before displaying an associated device ring.In addition, some embodiments may permit a user to configure whether adevice ring is displayed on a per device level, per device type, perproximity band, entire WVDS, etc., or in any combination.

FIG. 2 is an example screen display of a device ring displayed by anexample WorldView Display System. (It also shows navigation by zoomingin closer to an object.) The represented computer system 201, labeled“My Computer,” is shown in the center of a ring formed by at least onecable 210. (Multiple cables are used to indicate data sharingrelationships and are described further below with respect to FIG. 24.)The printer and scanner devices attached to computer system 201 areshown as devices 207 and 208, respectively. Each data collection presenton the computer system 201 is represented along the ring as datacollections 202-206. For example, video data is represented as datacollection 202, contact data is represented as data collection 203,files are represented as data collection 204, photos are represented asdata collection 205, and music data is represented as data collection206.

Each device (or other displayed object) is considered active orinactive. The WVDS typically allows only one object (device or datacollection) to be active at a time to control clutter and confusion;however such settings are configurable. In some embodiments, the deviceneeds to be made active before its device ring is displayed. In otherembodiments, a device ring is displayed if appropriate to the devicetype, for example, without regard to whether a device isactive/inactive. In a typical WVDS, the user activates a device (or datacollection) by selecting the object using an input device, such as, forexample, clicking on the object representation with a mouse cursor. Theuser can also select the object by “hovering” an input device cursorover the object representation. Once an object is active, a userinterface is displayed, such as palette 230, to allow the user tochange, for example, WVDS attributes, device related attributes oraccess privileges associated with the object. The user can also zoom inor out, thereby potentially changing how much detail of the object isshown and/or how large or small the components of the object appear, orcan invoke a native user interface associated with the device (e.g.,“open” the object). An object's representation is typically changed toindicate that the device is active.

Also, in some embodiments, the WVDS may recognize that a device is notcurrently on-line (accessible). In such a case, the WVDS may display anindication (not shown), such as a dashed line, or other demarcatedindicator, connecting the device ring associated with the devicerepresentation to the network cabling displayed in the associatedproximity band. In other embodiments, portions of a representation of anon-line device are omitted or changed when the device is off-line, suchas graying out the device ring or leaving out a connector cable from adevice ring to the network, etc.

Note that, in the illustrated embodiment shown in FIG. 1, there is asingle data collection represented for each type of data—otherembodiments may organize the data differently. For example, when adevice has multiple disk drives or types of internal or externalstorage, the WVDS may represent each drive's files as separate datacollections or may represent all the files as a single collection whichcontains sub-collections associated with each drive. As another example,when a device has multiple groups of music (or other media) content, theWVDS may represent each group of music content as a separate music datacollection (each potentially having sub-collections) on the device or asa single music collection which contains a sub-collection for each groupof music (each potentially having sub-collections). In any case, anyhierarchical organization of content present on devices is preservedthrough the notion of sub-collections, which are data collectiongroupings within a particular collection. A sub-collection also maycorrespond, for example, to a playlist, an album, a collection ofvideos, etc. For example, the music data collection 206 may haveassociated with it some number of sub-collections. When a datacollection having sub-collections is viewed at a level of perspective(“LP”) that presents its contents, then, in one embodiment, the WVDSdisplays each data sub-collection on a data collection ring of itsparent collection.

FIG. 3 is an example screen display of a data collection ring displayedby an example WorldView Display System. In FIG. 3, music data collection301 is displayed in a center of a data collection ring formed by arepresentation of a cable 320. Music data collection 301 comprises threesub-collections: favorites sub-collection 302, workout musicsub-collection 303, and classical music sub-collection 304. In oneembodiment, when a collection (or a sub-collection) is made active anddisplayed, an animation or cycling presentation indicative of thecontents of the data (e.g., a slide show of the data contents) is alsodisplayed to allow the user to better ascertain the contents of the datacollection. For example, FIGS. 4A and 4B illustrate still images from anexample screen display of a cycling presentation of an active photocollection. The user gets a “preview” of the photos (contents) presentin the active collection.

Note that representations of devices may or may not display data contentwhen the device representations are depicted in a WVDS universe. Thatis, in a typical configuration, the device representations display datacollections which in turn contain and are used to view data content. Thedevice representations may also be configured to include “screenforwarding” capabilities. That is, device models depicted in WVDS, whichhave associated display screens, may be configured to receive screendisplay output updates from the corresponding device and display these(device output) updates within the WVDS environment, thereby“forwarding” screen updates from the device to the WVDS. Depending uponcharacteristics of the underlying system, such as performancecapabilities, these updates may be received and displayed in nearreal-time. Such screen forwarding permits a user to see what ishappening on the associated device, but from within the context of theuser's connectivity universe. Screen forwarding may be configured aswith other WVDS configuration settings; for example, through a WVDSsupported user interface. Accordingly, the WVDS may be configured tosupport screen forwarding for all devices that support the capability;for just the active device; on a per device, per user, or per proximityband basis; according to certain parameters or heuristics that take intoaccount factors such as clutter, performance, privacy, and/or security;etc.

Device representations may also be associated with some form ofanimation to highlight when they are active, or at other times. FIG. 5is an example screen display of an animated representation of an activedevice. The indicated Internet service 501 (shown as an active device)is an email server for Earthlink email. The animated presentation 502hints at the functionality of the service and indicates that there issome sort of mail accessible as content.

FIG. 6 is an example screen display of a data collection ring with asub-collection ring displayed by an example WorldView Display System.Music data collection 301 from FIG. 3 with its surrounding datacollection ring 320 is displayed in FIG. 6 as music collection 601. Whenan active sub-collection, for example, the workout sub-collection 303,contains further sub-collections (e.g., further groupings of data suchas a particular album or a playlist), then a sub-collection ring for thesub-collection 303 is also displayed, if appropriate based upon the WVDSconfiguration settings. For example, in FIG. 6, Workout musicsub-collection 603 (which represents music sub-collection 303 from FIG.3) is displayed surrounded by a sub-collection ring 630, which furthercontains sub-collections Workout Albums music sub-collection 631 andFrom Pat music sub-collection 632.

In one embodiment, the WorldView Display System comprises one or morefunctional components/modules that work together with other parts of auser's online environment to model a user's connectivity universe. Thecomponents and/or sub-components of a WVDS may be implemented insoftware or hardware or a combination of both. FIG. 7 is an exampleblock diagram of how components of an example WorldView Display Systemare incorporated in a computer system to provide a user interface to anexample user's universe of devices, collections, and connections. TheWVDS 700 comprises WorldView display support modules 701 and one or moreWVDS data repositories 702. The display support modules 701 supportfunctions such as rendering a multi-dimensional representation, managingthe information associated with the objects in users' connectivityuniverses (such as lists of devices, data collections, connections, andconfiguration data), input device handling and management (e.g.,redirecting input from the host system to an associated device to beprocessed by its native user interface), screen forwarding handling andmanagement, status information regarding connectivity relationships,navigation support, and interfaces to various devices where appropriate.The data repositories 702 maintain information corresponding to thedevices, collections, connections, access proximity groups,synchronization/sharing relationships, rendering information, and WVDSconfiguration data. In overview, the WVDS 700 communicates with otherdevices and collections 720 that are connected via one or more networksto obtain status information regarding objects and to share data contentwhen appropriate. The WVDS 700 communicates with the native operatingsystem 710 of the host device to obtain connectivity universeinformation and to interface to a particular device's native userinterface (such as the default user interface on a MicrosoftWindows-based computer system or whatever interface is being presentedon the device). The WVDS 700 renders a representation of the user'sconnectivity universe on display system 704, and receives input frominput devices, such as mouse 705. The environment demonstrated in FIG. 7is one example environment that can incorporate a WVDS and that manyother environments with different components and different means forinteracting with the various devices may be supported.

FIG. 8 is an overview flow diagram of operations performed by an exampleWorldView Display System. In step 801, the WVDS determines the objectsthat comprise a particular user's connectivity universe. In step 802,the WVDS determines a measure of access proximity for each object in theinventory. In step 803, the WVDS arranges the objects with similarmeasures into groups according to an internal model of groups and anyrelevant WVDS configuration parameters. In step 804, the WVDS rendersthe groups of objects in a multi-dimensional rendering in accordancewith an internal model and WVDS configuration settings. In step 805, theWVDS awaits input, for example from a user through user interfacecommands, or for example through a programming interface provided via anapplications programming interface (“API”). The commands may includeinstructions to the WVDS to navigate to a particular location in thedisplay, change the viewing angle, or change the detail shown, modify auser's access control relative to a particular object, configure WVDSparameters, set up data sharing connections, or invoke the nativeinterface of an object. These commands are examples, and a variety ofother commands additionally could be implemented by a WVDS. When aparticular command is recognized by the system, the WVDS returns toexecute the appropriate step 801-804. Each of these steps is describedin further detail in the description that follows.

Although the techniques of modeling a user's connectivity universe andthe WorldView Display System are described with reference to a externalapplication running as a separate module(s) in addition to a nativeoperating system, the techniques of the presented embodiments can alsobe used directly by an operating system to present an alternativemetaphor to its own devices and data collections, as well as to otherdevices and data collections to which the operating system has access.Also, as illustrated with respect to FIGS. 26A-26F, a user can navigateseamlessly between the native operating system user interface and theWVDS user interface. Also, although many of the examples ofmulti-dimensional representations described herein refer tothree-dimensional representations and rendering, the term“multi-dimensional” includes any number of dimensions greater than one,including a two dimensional representation. The techniques describedherein can be accordingly adapted as appropriate to the number ofdimensions used to represent objects in the environment, or the WVDSenvironment itself. In addition, the concepts and techniques describedare applicable to other environments, including other applications,embedded systems, network management, etc. In brief, the concepts andtechniques described are applicable to any display managementenvironment or any other environment that desires to present a uniforminterface to on-line entities and relationships.

Example embodiments described herein provide applications, tools, datastructures and other support to implement a WorldView Display System tobe used for managing resources and relationships in a user's onlineworld. Other embodiments of the described techniques may be used forother purposes, including for other types of user interfaces. In thefollowing description, numerous specific details are set forth, such asdata formats and code sequences, etc., in order to provide a thoroughunderstanding of the described techniques. However, the describedembodiments also can be practiced without some of the specific detailsdescribed herein, or with other specific details, such as changes withrespect to the ordering of the code flow or module arrangement or usingdifferent algorithms entirely.

As referred to in step 801 in FIG. 8, the WVDS determines the objectsthat comprise a particular user's connectivity universe. The user'sconnectivity universe comprises a variety of objects, which includephysical and virtual devices, services, and data collections. Typicaldevices supported include, and are not limited to: personal computers,portable computers, PDA's, phones, cameras, network servers, includingemail servers or messaging servers, web servers, buddy rooms (shareddata accessible through devices not typically controlled by the user),printers, scanners, disk drives, card readers, biometric scanners, musicplayers, video players, etc. Typical data collection types include, andare not limited to: music, photos, video, files, contacts, email, webpages, newsgroups, favorites, history, and other types of media.Although “favorites” and “history” traditionally aren't treated as typesof data, for the purposes of the WVDS they can be treated as such sincea designation of “favorite” or on a recent “history” list connotes adeterminable characteristic of the associated data. The devices and datatypes recognized and supported by a WVDS may change over time and fromsystem to system.

In some embodiments, the WVDS supports an interface for adding newdevices, collections, and types of data collections. By initiating auser interface dialog with the WVDS from a particular location on thedisplayed presentation, the user can bring up a dialog with the WVDS tospecify a new device, collection, or collection type (mediaviewer/player). For example, by right clicking on a proximity band, theuser can indicate a new device to be recognized (e.g., a specificcomputer system or a newly attached printer) and added to thatparticular proximity band. In an alternative embodiment, the dialog andnew device are not proximity band specific (or the user can specify thatthey are not) and the WVDS automatically determines where to add the newdevice in its internal model. Similarly, the user can right click on theMedia Viewers proximity band to add a new type of collection viewer tobe discoverable. Media Viewers are described below with reference toFIG. 14. The user can also, for example, right click on a device to adda new collection. In addition, in some embodiments, the WVDSautomatically recognizes existing and new devices and collections andautomatically determines where to add them in its internal model. TheWVDS may also support a general “settings” user interface, accessiblefrom a button or other component on the screen, which also allows theuser to configure devices, collections, collection types, accessproximity characteristics, proximity band groupings, screen forwarding,input redirection, etc.

When initially executed, the WVDS creates and stores an initialinventory of the objects with which the user has a relationship. Sinceobjects may come and go and relationships may change, this inventory ismodified on some determined basis. For example, the WVDS may performupdates at specific times (such as the beginning of a session), atpreprogrammed times (such as once a day), by registering a callbackroutine to be invoked by the operating system when a device is accessedor its settings changed, or, for example, in response to a specificupdate request initiated by the user. The initial inventory of objectsmay be constructed by discovering objects from a variety of resources,including, for example, from operating system services, which enumerateregistered devices (e.g., local disk drives, connected printers,scanners, email servers, and web page histories); application programsthat interact with network devices; and user input provided in responseto a specific query or provided as configuration information using auser interface of the WVDS, etc.

Once the universe of objects is determined, then the WVDS determines asassessment of access proximity for each object in the inventory. (Seestep 802 in FIG. 8.) As described above, access proximity can beassessed by examining and evaluating the characteristics of the networkconnectivity associated with the object relative to the user and theamount of control the user has over the object, along with potentiallyother considerations. For example, devices directly attached to the hostdevice may be associated with one class of access proximity; devicesthat are connected via the same LAN to which the host device isconnected may be associated with a second class of access proximity;devices to which the user relates through wireless connections may beassociated with a third class of access proximity; objects to which theuser shares data over the Internet but the source of the data isdetermined remotely may be associated with a fourth class of accessproximity; and objects which the user has recently accessed over theInternet but has no control over may be associated with a fifth class ofaccess proximity. Many alternative classification schemes exist, andthat the above example represents one of those contemplated.

After automatically determining the access proximity for each object,the WVDS arranges the objects with similar measurements into groupsaccording to an internal model of groups and any relevant WVDSconfiguration parameters. (See step 803 in FIG. 8.) The grouping ofobjects comprising the connectivity universe and the layout thatsupports representing the groupings is based upon an internal model ofconnectivity and access proximity that the WVDS dynamically builds andmaintains over time and any relevant WVDS configuration parameters. Inone embodiment, this model is configurable to the extent desired,including, for example, the characteristics used to determine accessproximity, the number of groups (e.g., proximity bands) and to whatclass (or characteristics) of access proximity each group corresponds,and a specification of the circumstances under which a particular groupis displayed and how objects are displayed. For example, in anembodiment supporting proximity bands, certain bands may always bedisplayed, others displayed only if they contain objects, othersdisplayed based upon rules such as the presence of another alternativeband, and others displayed based upon particular viewing parametersettings. Other rules can also be incorporated as desired.

FIG. 9 is an example block diagram of a portion of one internal model ofan example connectivity universe by an example WorldView Display System.In FIG. 9, the model 900 schematically illustrates objects organizedaccording to five different groups 901, 910, 920, 930, and 940, eachcorresponding to a defined class of access proximity. An example WVDSmay display many different graphical representations of the same model,including, for example, 2-D and 3-D representations, proximity bands,and other displays of groupings of objects. For purposes ofillustration, the groups shown in FIG. 9 correspond to the proximitybands shown in FIG. 1, although the particular objects shown in themodel are not the same as those presented in FIG. 1. Group 901 “MyComputer” contains a single object computer system 902, with attacheddevices laser printer 903 and scanner 904. Group 901 is attached to allof the other groups through a “trunk” network 950, in this case theInternet (and to the user's Home Network group 910 through a LANconnection). Group 910 “Home Network” contains three devices thatcommunicate with the user through a LAN 960: computer system 911,portable computer system 912, and computer system 913 with an attachedphoto printer 914. Group 920 “Wireless Devices” contains two devices,cellular phone 921 and PDA 922, that communicate with the user throughtrunk network (Internet) 950 and wireless connections 961 and 962. Group930 “Internet Services” contains three services, two email services 931and 933 and a messaging service 932, which communicate with the userthrough the Internet 950, and whose associated server devices areattached through Internet connections 970. Group 940 “The Web” containslinks to pages of web sites 941 that the WVDS determines are of interestto the user based upon (optionally settable) parameters, such asnewsgroups, favorites, and access history.

Table 1 below illustrates an example inventory created by a WVDS usingone or more sources as described in step 801 and arranged according tothe access proximity assessments described in steps 802-803. TABLE 1 WebSites 60 Favorites with 8 sub-folders 4 weeks of history entries, withina time hierarchy 10 newsgroups accessed within a specific time periodInternet Services Hotmail email account Earthlink email account AOLInstant Messenger service Buddy Rooms 3 photo buddies 2 chat buddiesWireless Devices 1 cellular phone 1 PDA Home Network 1 laptop computerSpouse's computer with attached photo printer Kid's computer My ComputerUser's computer Attached laser printer and scanner Flash card readerInternal storage: 1 hard drive, 1 DVD drive, 1 CD driveThe objects shown in Table 1 are arranged according to the internalmodel of the WVDS, a portion of which is depicted in FIG. 9. Althoughnot shown in Table 1, the WVDS also keeps track of the particular typesof data and collections of data associated with each object. Any numberof well-known ways can be used to do track the content of the objects,including querying a service, invoking the operating system to list adevices' contents, searching registries, etc.

The “Buddy Rooms” indicated in Table 1 are virtual devices that are usedto navigate to or represent data collections to which the user hasaccess rights but that are hosted remotely and are not represented tothe user through some other device relationship that the user hassufficient access rights to see as a device in some other grouping.Thus, Buddy Rooms provide a means of user interface access to the userthat otherwise wouldn't be available from the other groupings ofobjects. For example, if a data sharing relationship is established witha second user's photo collection, and that photo collection resides on adisk drive of the second user to which the user does not otherwise haveaccess, then the WVDS may present the second user's photo collection asa Buddy Room in the user's connectivity universe. A chat room providesanother example of a buddy room.

FIG. 10 is an example screen display of an example Buddy Room proximityband. Buddy Room proximity band 1001 contains three shared datacollections: photo collection 1010, music collection 1011, and photocollection 1012. In one embodiment, each data collection is shown with acorresponding set of access cards 1020, 1021, and 1022, respectively, sothat the user can see which users have what type of access to eachshared data collection (presuming the user is authorized to see thisinformation). The front of each access control card summarizes theaccess privileges associated with a particular user. Access controlcards are described below with reference to FIG. 23. In someembodiments, the Buddy Room proximity band 1001 is referred to as“Friend's Computers.”

Once an inventory of objects (and their data collections) has beencreated and grouped according to the WVDS internal model (or modified asdirected), then the WVDS renders the groups of objects in amulti-dimensional rendering such as the proximity bands illustrated inFIG. 1 in accordance with the internal model. (See step 804 in FIG. 8.)A different rendering engine may be incorporated into the WVDS togenerate displays other than those described with reference to theFigures herein.

In some embodiments, the WVDS represents the groups of objects in auser's connectivity universe using proximity bands and renders them tolook three dimensional. In one such example embodiment, the WVDS definesseveral different views of default proximity bands—a device centricview, a media centric view, and a combination view. In an exampleembodiment, a device view displays data content present in the user'sconnectivity universe from within the context of the devices on whichthe data resides. Using device view, a user can easily view and specifysettings for, and interact with devices. A media view displays datacontent present in the user's connectivity universe based on its mediatype, independent of the devices on which the data resides. Using mediaview, a user can easily view and manipulate data based upon its typeregardless of where the data resides—and thus does not have to searchfor the data and perform a desired operation multiple times in multiplelocations. The different views are toggled on and off, for example,using buttons 130 and 140 in FIG. 1. A mixed view can be achieved bytoggling on device view and media view. Other combinations and otherviews, including filters of existing views, can similarly beincorporated.

In a typical default device view, such as that shown in FIG. 1, severalproximity bands are presented. A “My Computer” proximity band (e.g.,band 101) is typically displayed when the user's host device is apersonal computer or when the user has designated a particular device as“My Computer” through the WVDS configuration tools. A “Home Network”proximity band (e.g., band 102) is typically displayed if there is ahome network. If the host device is on a LAN that isn't a home network,then a “LAN” proximity band is typically displayed. A “Wireless Devices”proximity band (e.g., band 103) is displayed by default whether thereare devices present within in or not. A “Buddy Room” proximity band isdisplayed if the user has access to shared data collections that arehosted remotely (on someone else's devices) and the shared datacollections not already accessible through one or more devices that areshown in one of the other proximity bands. Each such shared datacollection appears as a collection within the Buddy Room proximity band.If the source of the shared data is controlled by or belongs to a devicecontrolled by the user (as determined, for example, through accessrights), then the shared data shows up as a collection on that devicering in an appropriate proximity band. A “Network Services” proximityband (e.g., band 104, also referred to as “Internet Services” when thenetwork of interest is the Internet) is displayed by default whetherthere are objects present within it or not. A “Web” proximity band(e.g., band 105, also referred to as a “Web Deck” or “The Web”) ispresent if the underlying network is the Internet. The Web proximityband is described further with reference to FIGS. 11 and 12. Note thatthe behaviors of one or more of these proximity bands can be configuredthrough the configuration interfaces of the WVDS, and proximity bandscan be added or deleted. Also, other labels for proximity bands are alsocontemplated and potentially configurable.

FIG. 12 is an example screen display of an example Web proximity band.FIG. 11 is an example screen display of a close-up view of an exampleWeb proximity band. The Web proximity band 1100 in FIGS. 11 and 1200 inFIG. 12 is configured by default to show some number of the user'sFavorites and History (as determined from parameters associated with theuser's Internet browsers) websites, as well as public collections suchas Usenet newsgroups. For example, in one embodiment the Web proximityband 1200 contains Favorites web pages 1202; History web pages 1203,which, for example, shows web pages accessed within a designated timeframe; and Newsgroups 1204. The Web deck 1201 (1101) represents an“animation” of the data collections contained in the Web proximity band1200. In one embodiment, when one of the data collections 1202-1204 ismade active, the Web deck animation 1201 (1101) is changed to shown arepresentation of the contents of the data collection. Many other datacollections of web pages, for example, by search or sorting filters,etc., could be incorporated in a similar fashion.

FIG. 13 is an example screen display of a default media view of anexample WorldView Display System. Several proximity bands are displayedby default. For example, the “Media Viewers” proximity band is displayedby default whether there are objects present within it or not. This bandgroups the viewers present in the user's connectivity universe for thedifferent types of content (data collections) supported by the WVDS. An“All My Media” proximity band 1301 is used to group each type of datacollection regardless of the device where the data collection is found,e.g., all music collections accessible to the user across all deviceswith which the user has a relationship. That is, the data collectionsdisplayed in the All My Media proximity band 1302 are“uber-collections”—they represent all of the data found in datacollections of a particular data type, with which the user has arelationship, regardless of location. The uber-collections displayed inproximity band 1302 in media view can be filtered based upon the buttons1305. Buttons 1305 include support as shown for different “types” ofmedia present in the user's connectivity universe, including: files,videos, contacts, photos, music, favorites, newsgroups, IM (instantmessaging) messages, email, and history. Different and/or additionalmedia types are supportable by a WVDS. In one embodiment, two proximitybands are additionally displayed by default regardless of the view: anInternet Services proximity band 1303, and a The Web proximity band1304. These are as described with reference to FIG. 1.

FIG. 14 is an example screen display of example media viewers presentedby an example media view of an example WorldView Display System. It is a“close-up” of a portion of the Media Viewers proximity band 1301representation illustrated in FIG. 13, and can be achieved by navigationto that area of the representation. Specifically, the illustratedportion of the Media Viewers proximity band 1301 contains four datacollection viewers: photo viewers 1410 and 1411 for interacting withphotos and music viewers (players) 1412 and 1413. Each viewer is shownas a device ring (or data collection ring) without any collections. Asmentioned, a user can add new media viewers to be discovered(recognized) by the WVDS by adding a new media viewer/player to theMedia Viewers proximity band through a user interface available from theWVDS. In addition, the WVDS will automatically recognize new MediaViewers that are added to devices in the user's connectivity universe.

FIG. 15 is an example screen display of objects displayed as a result offiltering a media view of an example WorldView Display System. In thiscase, the media view has been filtered to view “photos” only by pressingfilter button 1524. (In one embodiment, each button cancels any priorfilters and applies the filter that corresponds to the current pressedbutton. Other filters can be cumulatively added by pressing a key incombination with the button. Other embodiments provide other behaviorsuch that each button is an on/off toggle, etc.) When filtered, theMedia Viewers proximity band 1501 only contains the media viewers thatcorrespond to the filtered data type(s), in this case the photo viewers1410 and 1411 shown in FIG. 14. The All My Media proximity band 1502contains the data collections that correspond to the filter. In thiscase, the All My Media proximity band 1502 contains one uber-collection,photo collection 1503, which represents all of the photos that the userhas a relationship with. When present, the contents of other proximitybands, such as the Internet Services proximity band and the Webproximity band, are also correspondingly filtered.

FIG. 16 is an example screen display of a close-up of an uber-collectionpresented by a media view of an example WorldView Display System. Inthis case, the photo uber-collection 1503 is shown in close-up form, asa data collection ring with several sub-collections 1601-1605. When auser activates one of these sub-collections, it may display furthersub-collection rings as appropriate.

FIG. 17 is an example screen display of a combined device and media viewof an example WorldView Display System. Although it is not possible toview the whole universe in FIG. 17 (the Web proximity band 1706 is notdisplayed at this camera angle and zoom setting), the representationshows all of the proximity bands 1701-1703 and 1705-1706 present in FIG.1 plus the uber-collections represented in the All My Media proximityband 1704. In addition, the buttons 1705 continue to be displayed sothat the user can filter the uber-collections displayed in proximityband 1704 and any objects displayed within the other proximity bands.

As mentioned, views other than a device view or a media view can besupported by a WVDS. For example, a view that filters the connectivityuniverse by a user's relationships with certain individuals can beincorporated. In one embodiment, a People filter button (shown forexample in FIGS. 4A and 4B) is presented along with the Media and Deviceview buttons (see, for example, button 130 and 140 in FIG. 1). When thePeople view is toggled on, an additional row of filter buttons (notshown), with labels corresponding to the individuals with which the userhas a relationship (as discovered by the WVDS or configured by the user)is presented like the media filter buttons 1705 in FIG. 17. When a userselects a particular person filter button, then the WVDS adjusts thelayout of the connectivity universe representation to show devices,media, viewers, etc. that are related to the relationship between theuser and the designated person. For example, the devices, services,collections, and Buddy Rooms displayed are those to which the user andthe persons designated by the selected filters have access. Otherrepresentations can also be adjusted as appropriate. For example, emailviewers can be adjusted to only show data collections (email content)that relates to the filter universe of people. A variety of other typesof filters could also be accommodated by a WVDS.

Once the WVDS has rendered a representation of the connectivity universeassociated with a user, the user (or a program through an API) cannavigate within the representation to perform a variety of functions.(See step 805 in FIG. 8.) These functions include, for example,navigating to a particular location in the display; progressivelyexamining the detail of the content associated with an object (such asthe data collections available on a device); setting up sharing of datacontent; modifying a user's access control relative to a particularobject; configuring aspects of the WVDS; adding devices and collectionsto be recognized by the WVDS; and invoking the native interface or anobject-specific interface provided by the WVDS that is associated with aparticular object. In one embodiment of the WVDS, the user can navigateto view different locations in the representation (e.g., by changing arendering viewport), view the representation from different viewingangles (e.g., by changing camera angles), and can zoom in and out todifferent levels of perspective, where each level can be configured topresent a different level of detail.

A user navigates the connectivity universe presented by the WVDS usingan input device, such as a mouse, to control which portion of theuniverse is currently displayed on the display screen (e.g., a viewing“camera” location/angle) and to control the size of data that ispresented on the display screen and potentially how much detail isdisplayed (e.g., the “zoom” level). (Depending upon how zoom operationsare implemented, “zooming” can refer to how big or small objects appearand/or how much detail is displayed.) In a typical WVDS embodiment,zooming is generally performed using smooth animations. In someembodiments, zoom levels or ranges of zoom levels are associated withdifferent levels of perspective, which can be further used, along withother considerations, to define what is presented at different ranges orvalues of “zoom” levels. When a user zooms in or out to a particularzoom level, the WVDS determines to which level of perspective (“LP”) thezoom level corresponds and then uses the determined LP to decide whatshould be displayed. For example, for some zoom ranges (which may, forexample, correspond to a range of distances from a virtual camera to theobject(s) at or near the center of the screen), it may make sense forthe WVDS to display all of the possible detail that is available to beshown. For example, when the camera is within a certain distance to theobject or, using an another metric, close enough so that the objectoccupies at least a certain portion of the display screen, the user mayfind it helpful to see all of the detail of the object. For otherranges, such as viewing an entire connectivity universe representation,it may not make sense to display all of the detail associated with allobjects. Metrics other than distance from an object and/or portion of adisplay that is occupied may also be used to associate LP's to zoomlevels.

Note that zooming operations can be implemented without levels ofperspective, such that all detail that is potentially viewable dependingon the object size, distance of the camera from the object, and theresolution of the display upon which the connectivity universerepresentation is being viewed. Such detail may include, for example,sub-collections, device and collection rings, UI components associatedwith objects, etc. For example, when the viewing camera is located acertain distance from an object, that object and its associated detailmight occupy 100×100 pixels on the display screen. However, when thecamera pulls further back away from the object (for example in responseto a user zoom out request), then the object will appear smaller and mayonly occupy, for example, 10×10 pixels on the display screen. If thecamera pulls back even further, the object will occupy less of thedisplay screen, even possibly to a point where the object occupies asingle pixel and/or perhaps progressing even further to a point wherethe graphics rendering system determines that the object is too small todisplay at all (even though logically the object is still there and mayappear again when the camera zooms in closer to it). Note that when anobject's representation size gets smaller, its associated detail alsogets accordingly smaller such that, at certain points, some of that theassociated detail has become too small to discern and/or to even occupya single pixel on the display even though the object itself, being alarger size, is still being displayed and is potentially discernable. Insome embodiments, certain associated detail (e.g., object attributes)may retain a constant display size, regardless of zoom level and/or thedisplay size of the associated object, and such constant-size attributesmay further optionally be suppressed from being displayed when theirassociated object becomes too small to be displayed at all. For example,in one embodiment, when the user hovers over an object, the name of theobject is displayed at a constant size for easy readability. Theparticular techniques used to determine the displayed size of objectsare dependent upon many factors such as the graphics engine employed,the resolution of the host computer display, the hardware, the operatingsystem, etc.

Other combinations of implementing zoom levels to correspond to one ormore levels of perspective are also possible. In any case, the WVDS maybe implemented and/or configured to control what is displayed incorrespondence to how close-in or far away the user is.

In one embodiment, the WVDS provides the following levels of perspectivein increasing order (farthest away to closest):

-   -   1. World    -   2. Proximity Band    -   3. Device    -   4. Active Device    -   5. Native UI    -   6. Collection    -   7. Active Collection    -   8. Sub-collection    -   9. Active Sub-collection    -   10. etc. (further levels of sub-collections)        Level 1 represents the outermost level of perspective. For        example, in this embodiment, a definition of Level 1 specifies        that the entire world is displayed and accessible (to the extent        it can be viewed on the device). In Level 2, the focus is on        proximity bands. Level 10 represents further inner levels of        perspective until there are no more sub collection levels to be        displayed or accessed. Level 5 represents zooming in to an        object close enough to display the native user interface that is        specific to the object or one provided by the WVDS (for example,        if the device is not capable of providing access to its user        interface from within the WVDS). Thus, when a user accesses a        native user interface of an object in the WVDS, the user does so        in the context of the user's entire connectivity universe and,        by zooming in and out, the user can access different portions of        the user's universe.

Depending upon the WVDS configuration settings, the different levels ofperspective correspond to transitions in the amount of detail displayedin the connectivity universe representation. According to one WVDSdefinition, the level of perspective at which device rings are displayedaround devices is termed the “device ring display level.” In oneembodiment, the device ring display level is the Proximity Band level,although it is configurable. In another embodiment, the device ringdisplay level is the World level, and thus device rings are alwaysdisplayed. The level of perspective at which collections are displayedon the device rings is known as the “collection display level.”Typically, this occurs at the Proximity Band level, although, as withall of the other levels of perspective, this behavior is configurable.The level of perspective at which sub-collections are displayed on thedata collection rings is known as the “sub-collection display level.”Typically, this occurs at the Active Collection level, although, as withall of the other levels, this behavior is configurable.

Note that in some embodiments, the levels of perspective may beeffectively reduced to a single level of perspective if no transitionsbetween amount of detail or no differences between levels are defined.For example, if all objects are displayed and all functionality isavailable all (or most) of the time, the zoom in and zoom out behaviorof the WVDS user interface may set the viewport and camera angle withoutnecessarily affecting how much or what detail is displayed. Similarly,if a couple or few display detail transitions are described, the WVDSdefinition may incorporate only a couple or a few levels of perspective.

For example, in one embodiment of a WVDS, all objects are alwaysdisplayed except that only sub-collections of active devices/collectionsare shown. When the user activates an object, and, for example, zooms into a sufficient level, the zoom level may correspond to a level ofperspective (e.g., an Active Object LP) that indicates a displaytransition to display sub-collections of that object. In this example,two levels of perspective are sufficient to define the displaycharacteristics: a level in which (sub-)collections are shown for anactive object if any, and one in which they are not shown. If more thanone “level” of sub-collections is allowed (for example, nestedsub-collections), then additional levels of perspective areincorporated.

In addition, different levels of perspective may be associated withdifferent default WVDS configuration parameters. For example, screenforwarding for device representations that correspond to devices withdisplay screens may default to being turned on at some levels but notfor other levels. Considerations such as clutter, performance, andsecurity may be incorporated in determining at which levels screenforwarding makes sense. Other WVDS configuration parameters cansimilarly be associated with different levels of perspective. In someembodiments, even if these parameters are set as defaults for aparticular LP, a user may be allowed to override such settings on a perobject basis (a proximity band basis, or a system-wide basis), forexample, through a WVDS user interface associated with a particulardevice object. In addition, the WVDS may use heuristics to automaticallydetermine when certain parameters are set or not.

The WVDS renders the objects in the user's connectivity universe basedupon the current configuration of these levels of perspective. FIGS. 18Aand 18B are an example flow diagram of proximity band renderingsupported by an example rendering system of a WorldView Display System.Other steps could be implemented, in different orders, and usingdifferent algorithms, yet still achieve the rendering functions of theWVDS. Steps 1801-1816 are executed for each (topmost level) object ineach proximity band in the system, appropriate to the current level ofperspective. In step 1801, the WVDS determines and renders the deviceimage, size, and detail according to the current level of perspective(LP) and whether the device is active or not. In step 1802, the WVDSdetermines whether the device is active, and, if so, continues in step1803, else continues in step 1804. In step 1803, the WVDS displays theactive device's WVDS user interface and may also display auxiliaryfeatures such as access control information or other information. Instep 1804, the WVDS determines whether the current LP is at or below thedevice ring display level, and, if so, continues in step 1805 to displaya corresponding device ring, else returns. In step 1806, the WVDSdetermines whether the current LP is at or below the collection displaylevel, and, if so, continues in step 1807 to display any correspondingdata collections, else returns. In step 1808, the WVDS determineswhether any one of the data collections is active, and, if so, continuesin step 1809 to display the collection ring associated with the activecollection, else returns. In step 1810, the WVDS displays the activecollection's WVDS UI and may also display auxiliary features such asaccess control information or other information. In steps 1811-1816, theWVDS executes a loop for each contained sub-collection to display thesub-collections and their associated sub-collection rings, as well asthe active sub-collection's WVDS UI. More specifically, in step 1811,the WVDS determines whether the current LP is at or below the nextsub-collection display level, and, if so, continues in step 1812, elsereturns. In step 1812, the WVDS determines whether there exist anysub-collections to display, and, if so, continues in step 1813, elsereturns. In step 1813, the WVDS displays the sub-collections. In step1814, the WVDS determines whether a sub-collection is active, and, ifso, continues in step 1815 to display the sub-collection ring associatedwith the active sub-collection, else returns. In step 1816, the WVDSdisplays the sub-collection's WVDS UI, and may also display auxiliaryfeatures such as access control information or other information, andthen returns to step 1811. In one embodiment, only the lowest-levelactive object displays its UI.

Assuming that, at least at some point, the representation of theconnectivity universe is larger than can fit on the display screen, theuser controls the portion of the universe displayed by moving the inputdevice to reflect the user's position. According to one embodiment, theinput device behaves like a camera view finder. That is, as the usermoves (as the input device indicates motion) in a forward direction, theuser will see more objects ahead while those objects that werepreviously closest to the user will move behind the user and fall out ofview. Also, as the user moves in a direction so that the user appears tobe looking more directly downward (moves the point of view sourcehigher), the user will see more of the top of objects and less of a sideview. Similarly, as the user moves to the side, the user will see thoseobjects to that side while objects on the other side fall out of view.

Many different graphics and rendering techniques are available tonavigate through a two or three dimensional representation of theconnectivity universe displayed on a display device. The followingdefinition describes one user interface to effectuate the cameraposition, angle, and orientation movements described above. Manyequivalent user interface definitions can be similarly incorporated andthat different user interfaces can be optimized for different inputdevices. For example, definitions may be created to support other inputdevices, such as joy sticks, that can control multidirectional, 3-Dmovement.

-   -   Movement forward, backward, and side-to-side: the user's point        of view follows the mouse (or similar input device) movement.        This movement changes location, but doesn't change the direction        the user is facing.    -   Changing the view angle: pressing the two main mouse buttons        simultaneously and moving the mouse changes the view angle in        the direction of the mouse movement. A move right shifts the        view to the right; a move left shifts the view to the left; a        move forward shifts the view downward; and a move backward        shifts the view upward (or visa versa).    -   Changing the zoom level: rolling the mouse wheel moves the view        closer or further from the displayed object(s). Correspondingly,        in WVDS definitions with multiple LP's, the level of perspective        may change as the zoom level passes from that specified for one        LP range/value to another.        These various movements may also be combined by the WVDS to        automatically provide the user with useful views. For example,        as the zoom level is changed to a closer level (thereby showing        more detail), the viewing angle may automatically be changed to        provide a more front-on view of the objects.

FIG. 19 is an example screen display of a representation of a user'sconnectivity universe as displayed by an example WorldView DisplaySystem after navigating to a new location. In FIG. 19, only some of theproximity bands that represent the entire universe are displayed, thedisplay viewing angle has been changed to appear as if the user isviewing the universe from a position closer to the ground (e.g., the“floor” of the universe) as opposed to further up in space, and thevarious objects represented in the proximity bands appear larger.

FIG. 20 is an example screen display of an example connectivity universefrom a different viewing angle and a different level of perspective. InFIG. 20 the user has navigated in such a way that a transition iseffected from the Proximity Band level of perspective (“LP”) to theActive Collection LP. This transition results in the display of a photocollection 2002, with its sub-collections 2031-2035, on the device ring2001, which is consistent with a WVDS configuration that specifies theActive Collection LP as the sub-collection display level. In comparisonto FIG. 1, the viewing angle has also been changed to reflect a viewsource that is more level with the object, yielding a perception oftraveling down to and facing the object head-on, when the movement isrendered as a smooth animation.

In addition to general navigation, the user can also further manipulateobjects and their content by activating them. As briefly mentioned withreference to FIG. 2, when an object (device/service or data collection)is made active, the WVDS displays a user interface tool for furthermanipulating the object. FIG. 21 is an example screen display of aclose-up view of a WorldView Display System user interface displayed foran active device. The cellular phone device 2101 is depicted with a WVDSUI palette 2120. Palette 2120 comprises two buttons: a “robot” button2121 for setting up characteristics of the associated device (using thenative user interface associated with the device where available) and a“policeman” button 2122 for invoking an access control dialog (e.g., toset up access permissions and potentially other configurationparameters) with the user. The user can also manipulate an active devicein other ways. In one embodiment, the user can bring up a user interface(for example, by right clicking on the device with a mouse or byselecting the robot button 2121) to add new collections to berecognizable on the device. In addition, a maximize button 2102 isdisplayed to allow the user to easily (e.g., in a single click) zoominto a native user interface associated with the device, for example,whatever is currently being displayed on the display 2130 of device2101. In one embodiment, the maximize button 2102 lets whatever isdisplayed on the display 2130 of device 2101 “take over” a majority ofthe screen, such as in a “full screen” mode. For example, if the user(or the WVDS system) has set configuration parameters such that screenforwarding is active for this device, then the display screen 2130 willbe currently displaying whatever is being displayed by the nativeoperating system of the associated (real) device. When the device 2101is maximized, the content being displayed is enlarged accordingly. Theuser can use zoom handles button 2103 to adjustably zoom into whateveris currently being displayed on the display 2130 of the device 2101, forexample, to see more of what is on display 2130 in the context of theconnectivity universe. In one embodiment, the zoom handles button 2103presents a handle which can be dragged by the user to adjust the zoomlevel while automatically repositioning the viewing “camera” so that thedisplay 2130 remains fully in view. Also, in some embodiments the usercan “open” the active device, for example, by double-clicking on thedevice representation (or through another button) or by single-clickingwithin the display 2130 to redirect input from the host system to beforwarded to the associated (real) device to be processed by its nativeuser interface, or a WVDS provided one. From the user's perspective, theuser then appears to be interacting directly with the real device,especially when screen forwarding is active, and enables the display2130 to show in near-real time output that results from the user inputbeing processed by the associated device. Other buttons for othercapabilities can be easily incorporated and other iconic representationsor symbols can be displayed. A more distant view of a UI palettedisplayed for an active device is shown as palette 230 in FIG. 2.

FIG. 22 is an example screen display of a close-up view of a WorldViewDisplay System user interface displayed for an active collection. Amusic data collection 2201 is depicted with a UI palette 2220. Palette2220 comprises three buttons 2221-2223 and a sync/share interface cable2224. The buttons include a “robot” button 2221 for setting upcharacteristics of the data collection, a “policeman” button 2222 forinvoking an access control dialog (e.g., to set up access permissions)with the user, and a “rose” button 2223 for opening the data collectionusing an appropriate media viewer. A further out view of a UI palettedisplayed for an active data collection is shown as UI palette 340 inFIG. 3.

Other buttons for other capabilities can be easily incorporated and thatother iconic representations or symbols can be displayed. For example,in one embodiment, the WVDS supports a uniform “media control” typeinterface on a data collection for manipulation of the contents of thecollection. Media controls includes commands such as a “play” command,“pause” command, a “next” command, a “previous” command, a “fastforward” command, and a “rewind” command, which are supported in theform of buttons or other UI components. The user can invoke these mediacontrols to easily cycle through the data contents of a collection andto invoke the appropriate player/viewer to present the contents.

Using the access control button of either a device or data collection UIpalette, for example buttons 2122 or 2222, the user can cause the WVDSto display an access control dialog (not shown) to configure accesspermissions on the corresponding device or collection to the extent thatthe user has permission to do so. Setting access permissions from thisdialog allows the user to easily specify for one or more users accesspermissions at the object level, which may be different for each user orgroup of users, instead of setting them one at a time for other users towhom the user desires to grant access. Alternatively, access controlcards can be used to manage access permissions at an individual level.As described above, in one embodiment, access control cards arepresented along with an active object's representation (and at othertimes).

FIG. 23 is an example block diagram of an access control card forconfiguring access rights of a device or a collection for an individual.Access control card 2300 includes an indication of the user'sidentification 2301 and an indication of current state of access rights2302. To change access rights, the user selects the Modify button 2303(or link or other user interface component as appropriate). Manyalternative yet equivalent implementations and presentations exist forsetting up access permissions for a device or data collection of a WVDS.

In one embodiment, each access card has a front side and a back side.Once an access control card has been set up for a particular object, theWVDS may be configured to display the current settings on the front sideof the card or a symbol of the user (or an avatar representing the user)as part of the representation of the object. In addition, in someembodiments, an access control card associated with a device or datacollection may be displayed for each user that has some type of accessto the object, resulting in potentially multiple access control cardsbeing displayed at the same time for a single object. Typically, theWVDS displays the (front side of) associated access control cards foractive objects. When a user then selects an access control card (to theextent the user's permissions allow), an animation turns the card fromthe front to the backside, resulting in the card as shown, for example,in FIG. 23. The user can then modify the access permissions for theassociated object (for the corresponding user if applicable). Forexample, in FIG. 2, access control card 240 is displayed as part of thedevice ring presentation. Similarly, in FIG. 10, access control cards1020-1022 (one per user) are displayed with corresponding sharedcollections 1010-1012.

In other embodiments, the WVDS can incorporate other types of settingsand/or access control parameters. For example, controls that limitaccess based upon the type of content or device in combination withcertain characteristics of a user, or based upon other limits such astime, may be implemented to effect a parental control interface. Suchinterfaces can be integrated into the WVDS, for example, as part of thesettings or access control buttons available on the WVDS UI palettes,for example, robot button (2121 and 2221 in FIGS. 21 and 22,respectively) or policeman button (2122 or 2222 in FIGS. 21 and 22,respectively),

For example, in one embodiment screen forwarding and input deviceredirection capabilities may be configured using these buttons forparticular devices. Many combinations are contemplated, such as definingan initial WVDS configuration definition that generally enables ordisables screen forwarding, for example, to allow a user to followwhat's happening on multiple devices simultaneously or to reduceclutter, but still allow a user to override these settings on a perobject, proximity band, or system-wide basis.

The sync/share interface cable present on a UI palette of a datacollection, for example the cable 2224 in FIG. 22, is used to set up adata sharing relationship, which may be synchronized in some manner,between two (or more) collections of data. Two collections have asynchronized data sharing relationship when data is automaticallytransferred between them as either acquires new or modified data. Forexample, when a music data collection on the user's My Computer device(on the My Computer proximity band) has a synchronized data sharingrelationship set up with a music data collection on the user's portabledevice (accessible for example, via a Home Network proximity band), thenthe two collections are automatically synchronized whenever one of themis changed. This functionality is useful in a variety of scenarios, forexample, keeping address books and contact lists synchronized between auser's personal computer and cell phone; sharing photos with familymembers and friends; and sharing photos between a user's personalcomputer and a portable device such as a PDA. In all such cases, theWVDS, along with the corresponding devices' operating systems, services,applications, etc. as necessary are responsible for synchronizingupdated content and no further actions need be taken by the recipientuser. Note that in some alternative embodiments, the data may be sharedand not automatically synchronized, or such aspects may be configurable.

Data sharing relationships may be one-way or two-way. A one wayrelationship implies that one data collection serves as a source fordata updates and one data collection serves as a target. A two-wayrelationship implies that each collection acts as a source collectionfor the other when their respective data content changes and that eachcollection acts as a target collection (recipient) for the other'schanged data content. Thus, the shared data is transferred in twodirections and the sharing relationship can be termed bi-directional.

Also, data sharing relationships may involve the actual transfer of dataor may involve “virtual” transfers, in which the device associated withthe target collection receives a description of the modified datacontent, but the actual transfer is delayed until a user tries to accessit (e.g., the recipient collection may contain a link to the sharedsource data).

The WVDS also provides a user with an ability to set up “functionalagents” at each end of the data sharing relationship. These functionalagents provide hooks into code that is executed as appropriate upon thesending or receiving of data by a collection. Many such functionalagents can be defined. In an example embodiment, the WVDS supports thefollowing functional agents:

-   -   Send New—A basic sending agent that detects when new data is        deposited in the associated collection and sends the new data to        the other collections that have data sharing relationships with        the associated collection.    -   Filter and Send—A sending agent that detects when new data is        deposited in the associated collection and only sends it when        the data passes user-configured (or WVDS-defined) filters.    -   Receive and Store—A basic receiving agent that detects when new        data is received and stores it in the associated collection. The        agent is responsible for storing the received data in local        storage associated with the device that corresponds to the        receiving collection (or other data repository) and adjusting        any records that define the receiving collection's content.    -   Receive and Filter—A receiving agent that detects when new data        is received and only stores it (and updates appropriate records)        when the data passes user-configured (or WVDS-defined) filters.    -   Receive and Display—A receiving agent that detects when new data        is received and displays it.    -   Receive and Notify—A receiving agent that detects when new data        is received and notifies the user that the data has been        received. The type and location of the notification can be        configured by setting corresponding WVDS parameters.

In one embodiment, data sharing relationships are established byconnecting (such as by dragging or using other direct manipulation inputcommands) a representation of a sync/share cable from a sourcecollection or device onto a target collection or device. Morespecifically, the user drags a “sharing cable” with a plug within thedisplayed universe (using other navigation commands as appropriate) and“plugs” the cable plug into a “receptor” on a target data collection ordevice by, for example, a drop movement. Upon plugging in the sharingcable, the WVDS automatically establishes a (typically) synchronizeddata sharing relationship between a corresponding source data collectionand a (direct or implied) target data collection. Optionally, a sharing“settings” configuration dialog or a confirmation dialog may bedisplayed before completing the connection. In one embodiment thatutilizes a mouse, when the user clicks on a sharing cable plug, themouse can be used to drag the cable (which is pulled out from thecollection/device as needed to follow the mouse around) withoutdepressing any buttons. (The WVDS accomplishes this functionality byimplementing modal operation when the mouse is used to click on thecable plug.) The user is thus able to use full navigation commands,including zooming to find an appropriate target collection. While acable is being dragged, appropriate candidate target collections may behighlighted or otherwise given emphasis (or devices when the level ofperspective or zoom level is too far away to present collections). Insome embodiments, inappropriate targets are dimmed. When the cable plugnears a candidate collection, the candidate collection may display areceptor or other target indicator to indicate to the user that thecable can be attached to that collection. A further mouse click or othertype of selection indication by the user on the receptor or other targetindicator may be used to indicate that a connection should be made withthe target collection.

Devices can also display receptors when a cable plug comes near them.Even though data sharing relationships are ultimately establishedbetween data collections, the WVDS will automatically attempt to set upa relationship between corresponding types of data collections when theuser specifies a device as either the source or target of a dragoperation of a sharing cable. For example, when the user drags a cablefrom a collection to a target device, the WVDS creates a data sharingrelationship between the source collection and a collection of the sametype on the target device. If there is more that one collection of thattype on the device, then the user is queried to determine the desiredtarget. If there are no collections of that type yet on the device, thena new collection is created.

Both data collections and devices can include sharing cables with plugs.For example, the sync/share interface cable 2224 in FIG. 22 is anexample sharing cable with a plug associated with a data collection.Similarly, a sync/share interface cable 220 in FIG. 2 is an examplesharing cable with a plug associated with a device. When a sharing cableplug of a device is plugged into a receptor of a target data collection,then a matching type of data collection on the source device is presumedto be the source data collection for the data sharing relationship.Again, if there is more than one possible match, the user is queried todetermine the intended source. When, instead the sharing cable plug ofthe device is plugged into a receptor of a target device, then, the WVDSqueries the user to specify which collections on the source and targetdevices should be shared and sets up new collections on the targetdevice if they are non-existent.

Data sharing relationships also may be set up between an external sourceobject to which the user has limited current access rights (the user canaccess data from the object and is not currently viewing the objectwithin the WVDS display) and a target object to which the user hasaccess rights and which is being displayed in the current WVDSrepresentation. The WVDS will display an appropriate indication to showthat data for the data sharing relationship is coming from an externalobject. For example, the WVDS may display a cable representation thatappears to go “off-screen” with a terminator that indicates the sourceof the data. A corresponding data sharing relationship can be set upwith an external object as the target object and an appropriateindicator displayed to indicate that data sharing relationship.

When a data sharing relationship is established, the WVDS may present auser interface to allow the user to configure the parameters andsettings of the relationship, including whether the relationship isone-way or two-way (uni- or bi-directional), parameters such asfrequency of updates, desirability of virtual transfers, etc., and thespecification of special functional agents.

Once the relationship is fully established and configured, in oneembodiment, the WVDS indicates the data sharing relationship graphicallyon the presentation of the connectivity universe, for example, using acolored cable between the relevant collections. FIG. 24 is an examplescreen display of a data sharing relationship established between twocollections. In FIG. 24, a data sharing relationship has beenestablished between a music data collection 2410 on a device ring thatsurrounds the computer system 2401 and a music data collection 2420 on adevice ring that surrounds a different computer system 2402 in adifferent proximity band. Colored cabling, for example, the red cabling2430, is added between the two collections with the data sharingrelationship.

One of the functions available through the WVDS interface is to allow auser to invoke the native interface (or WVDS provided object-specificinterface) associated with a particular object within the context of theWVDS. When a device is active, the user can cause input from an inputdevice (for example, a mouse or keyboard) to be “redirected” to theactive device, such as by “opening” the active device (by maximizing itor clicking within the device screen) as described with reference toFIG. 21. The WVDS can display an appropriate simile of an input deviceif the host's input devices aren't appropriate for indicating input tothe active device. For example, if the host device is a computer systemand the active device is a cell phone the WVDS can display arepresentation of a cell phone keypad for entering input to the cellphone.

In addition, if screen forwarding is also turned on for the activedevice, then, when device input is redirected to the active device,updates to the display screen of the associated real device, potentiallybased upon the redirected input, are automatically displayed in the WVDSdevice representation. For example, in one embodiment of the WVDS, adevice's display screen as modeled by the WVDS (for example, the displayscreen of the computer system 201 in FIG. 2) is generally always “live.”That is, a (typically smaller) replica of whatever the native operatingsystem interface is outputting to the display screen associated with thereal device is reflected in the device representation provided by WVDSthrough its screen forwarding capabilities. As the output to the displayscreen associated with the real device changes, these changes areautomatically reflected in the device representation provided by theWVDS. (The user is thus viewing what is displayed on the actual devicein the context of the user's connectivity universe.) By using bothscreen forwarding and input redirection, a user can interact with nativeinterfaces of devices from within WVDS without leaving the WVDSenvironment. Note that one can use input redirection without screenforwarding and visa versa—the behavior of an object is dependent uponthe WVDS configuration settings associated with that object.

In addition to interacting with the native UI of a device within theconnectivity universe representation, the user can zoom in closer to adevice until the device's native UI becomes “full screen” (e.g.,maximized) on the host device's display screen. The standard navigationtechniques for zooming and/or changing levels of perspective (e.g.,rolling a mouse wheel to zoom in and out, using a zoom handles button,etc.) can be used to accomplish this function. In addition, on devicerepresentations with which a user can interact in full screen mode, theuser is able typically to select an area within the devicerepresentation display screen (e.g., a maximize button)—effectivelyzooming in (and/or changing the level of perspective where appropriate)to “maximize” the interface shown on the device representation displayscreen. In some embodiments, a maximize operation automatically causesinput redirection. For example, as shown in FIG. 21, the user can clickon the maximize button 2102 as a shortcut to zoom into the native userinterface associated with the represented device and display thedevice's native UI “full screen” on the host device's display screenwhile also redirecting input to the device. In other embodiments, a userneeds to explicitly invoke the underlying user interface associated withthe device by causing input redirection through some explicit action. Inaddition, in some embodiments, when an appropriate user interfacecomponent is selected, the WVDS provides a gradual and smooth “zoomtransition” from the current zoom level to a full screen (zoomed in or“maximized’) view. The zoom transition animates the zooming in action ina manner that allows a user to easily see and understand the transitionas the view shifts from a broader connectivity universe view to theselected device screen view. In some embodiments, the WVDS also supportsan adjustable zoom handle(s) for changing the size of what is displayedso that more or less of the content displayed on the device can beshown. For example, the user can select the zoom handles button 2103 toinvoke an adjustable zoom into the display screen content.

Once the user has maximized a device representation so that the user isviewing only the native UI of the device's underlying operating system(and similarly when the user wishes to enter the WVDS initially from adevice's native user interface), the user can enter (or return to) theWVDS connectivity universe representation by selecting a “WVDS Restore”button or other user interface component superimposed on (or otherwiseintegrated with) the native UI's display presentation. The specific userinterface component added to each device's native user interface toaccomplish this restore functionality typically depends upon the type ofdevice, its native user interface, and the operating system of thedevice. If the device is a Window's operating system driven device,then, for example, the WVDS can add a WVDS Restore button on eachwindow's title bar that invokes a type of “restore” function to renderthe window(s) containing the native UI to a smaller replica of thewindow(s) within the connectivity universe representation.

In some embodiments, when an appropriate user interface component isused to invoke the “restore” functionality, the WVDS gradually andsmoothly zooms out from the full screen display to a higher (furtheraway) level of perspective, which presents the device within the contextof the user's connectivity universe representation. This “zoom out”transition animates a zoom out action in a manner that allows a user toeasily see and understand the transition as the view shifts to a broaderconnectivity universe view. In some embodiments, when a device's screenrepresentation is restored, input is automatically redirected from thedevice to the WVDS.

FIGS. 26A-26F is an example display screen sequence illustratingnavigation into the WorldView Display System from a native operatingsystem user interface. The sequence is demonstrated for transitionsbetween the WVDS and a Microsoft Windows operating system desktop userinterface; however, similar sequences and user interface components canbe integrated for other operating system UIs as appropriate. In FIG.26A, window 2601 is shown with the Windows desktop. The title bar 2610of window 2601 includes a WVDS “restore” button 2602 to the left of thenormal Window's title bar minimize, maximize, and close buttons 2603. Anadditional restore button 2604 is placed in the corner of the Windowsdesktop. The restore buttons 2602 and 2604 operate as described above tozoom out to the WVDS representation of the user's connectivity universe.

As described, this zoom out can be presented as a gradual and smoothtransition out to the WVDS representation. FIGS. 26B-26F are snapshotsof moments in such a transition. In FIG. 26B, the window 2601 is nowshown within a WVDS display screen representation 2620 associated withthe device that was presenting the Windows desktop in FIG. 26A. As such,the screen representation 2620 contains zoom handles button 2605 andmaximize button 2606. In FIGS. 26C-26F, the window 2601 is shown as aprogressively smaller replica within WVDS screen representation 2620.Again, the zoom handles button 2605 and maximize button 2606 continue tobe present. In FIG. 26C, one can begin to see several of the proximitybands of the connectivity universe representation, which become moreapparent by FIG. 26E.

In FIG. 26D, window 2601 shown within WVDS screen representation 2620 isshown in the context of a device ring 2640 associated with the device.In the example shown, this device ring 2640 is the same as device ring210 shown as part of the My Computer device 201 in FIG. 2. In FIG. 26E,additional zooming out has taken place. By FIG. 26F, the sequence haszoomed out to display all of the proximity bands, thus placing the userin the context of the user's connectivity universe representation. Thecamera viewing angle has also been changed to view the universe fromabove so that the bands can be seen more easily. Other sequences,progressions, viewing angles, etc. can be presented to effect the zoomin/zoom out smooth transitions.

The sequence of FIGS. 26A-26F is executed in reverse to return to fullscreen (or “maximized”) mode of the screen representation 2620associated with the host device (or similarly, to return to full screenmode of other devices). In the illustrated sequence, a host button 2630is available to quickly return to a full screen view of the host devicescreen representation using a gradual smooth zoom in transitioncapability. In some embodiments, for example, when the WVDS is executedas a separate application, this button may operate (and be labeled) asan “exit” button that returns to the user interface of the nativeoperating system of the host device.

In some embodiments, a user can easily switch between interacting with arepresented device's native user interface and the WVDS user interfaceby selecting an area (e.g., using a mouse click) within the device'sscreen representation in WVDS or outside the device's screenrepresentation in WVDS. For example, if input is currently beingredirected to the device's native UI, then, when the user clicks on anarea outside of the device's screen representation (other than on arepresentation of a keyboard or other input device simile displayed byWVDS for the purpose of redirecting input), then WVDS interprets theclick and input that follows as intended for the WVDS and not for thedevice. If, however, a device's WVDS screen representation is maximized,then the user cannot click outside of the screen representation, andemploys other techniques to send subsequent input to the WVDS, such asby restoring the display as described above, which in some embodimentswill automatically redirect input back to the WVDS. Conversely, if theuser clicks on an area inside of the device's (non-maximized) WVDSscreen representation, then the WVDS interprets the click as a commandto send subsequent input to the device (and some indication of theredirection is typically displayed).

The WorldView Display System also supports the ability for a user to“open” a collection to invoke a native user interface associated withthe collection. The “rose” (open) button in an active data collection'sUI palette (see, for example, button 2223 in FIG. 22) can be selected toopen the underlying content using an appropriate media viewer. When theuser selects the open button, the WVDS directs the host device'soperating system to execute the host system's default application fordisplaying (or otherwise presenting) the active collection's content.For example, if the user opens an active music collection, then thedefault media player for presenting music is activated as playing thedesignating collection of music. Similarly, if the user opens an activephoto collection, then the default photo viewer is invoked and displaysthe designed photos. In other embodiments, different techniques thatincorporate the native UI of the associated device also may be used andthe WVDS can allow the user to choose among available techniques.

As mentioned with reference to FIGS. 21 and 22, the UI palettespresented on active devices and collections also provide users anability to change settings of the corresponding device or collection.Many different functions can be made available through such aninterface, including using the settings button (or a UI componentpresented in a further response) to invoke a native UI that correspondsto the active device. This native UI can also be presented in a “fullscreen” mode, as described with reference to opening and maximizing anactive device to invoke its native UI. In addition, the WVDS can selectbetween using a native UI to configure the active device or collectionand using WVDS specific interfaces. Combinations between them are alsopossible.

In addition to the operations and functions described, the WVDS canoffer many additional enhancements. For example, the WVDS may alsosupport a general “settings” user interface, accessible from a button orother component on the screen for configuring devices, collection types,and other WVDS configuration parameters. Such an interface can be used,for example, to configure the modeling parameters of the WVDS; configurethresholds such as the maximum number of proximity bands to display atcertain levels of perspective; hide and unhide the display of particularproximity bands; set up characteristics to assess access proximity; mapaccess proximity classes to proximity bands; specify that particulardevices are mapped to particular proximity bands; specify collections ondevices, etc. Lots of alternative interfaces to these functions can alsobe easily incorporated and are contemplated to operate with thetechniques described herein.

FIG. 25 is a block diagram of a general purpose computer system forpracticing embodiments of a WorldView Display System. The generalpurpose computer system 2500 may comprise one or more server and/orclient computing systems and may span distributed locations. Inaddition, each block shown may represent one or more such blocks asappropriate to a specific embodiment or may be combined with otherblocks. Moreover, the various blocks of the WorldView Display System2510 may physically reside on one or more machines, which use standardinterprocess communication mechanisms to communicate with each other.

In the embodiment shown, computer system 2500 comprises a computermemory (“memory”) 2501, a display 2502, a Central Processing Unit(“CPU”) 2503, Input/Output devices 2504, and Network Connections 2505.The WorldView Display System (“WVDS”) 2510 is shown residing in memory2501. The components of the WorldView Display System 2510 preferablyexecute on CPU 2503 and manage the generation and use of connectivityuniverses, as described in previous figures. Other downloaded code 2530,terminal emulators as required 2540 and potentially other datarepositories, such as data repository 2520, also reside in the memory2501, and preferably execute on one or more CPUs 2503. In addition, oneor more components of the native operating system for the computersystem 2550 reside in the memory 2501 and execute on one or more CPUs2503. In a typical embodiment, the WVDS 2510 includes one or moreDisplay Managers 2511, at least one Rendering Engine 2512, userinterface support modules 2513, API support 2514, and WVDS datarepository 2515, which contains for example WVDS configuration andconnectivity universe information.

In an example embodiment, components of the WVDS 2510 are implementedusing standard programming techniques, including object-orientedtechniques as well as monolithic programming techniques. In addition,programming interfaces to the data stored as part of the WVDS can beavailable by standard means such as through C, C++, C#, and Java API andthrough scripting languages such as XML, or through web serverssupporting such. The WVDS data repository 2515 is preferably implementedfor scalability reasons as a database system rather than as a text file,however any method for storing such information may be used.

The WVDS 2510 may be incorporated into a distributed environment that iscomprised of multiple, even heterogeneous, computer systems andnetworks. For example, in one embodiment, the Display Manager 2511, theRendering Engine 2512, and the WVDS data repository 2515 are all locatedin physically different computer systems. In another embodiment, variouscomponents of the WVDS 2510 are hosted each on a separate server machineand may be remotely located from the tables which are stored in the WVDSdata repository 2515. Different configurations and locations of programsand data are contemplated for use with techniques of the describedembodiments. In example embodiments, these components may executeconcurrently and asynchronously; thus the components may communicateusing well-known or proprietary message passing techniques. Equivalentsynchronous embodiments are also supported by an WVDS implementation.

The capabilities of the WVDS described above can be implemented on ageneral purpose computer system, such as that described with referenceto FIG. 25, using well-known programming techniques.

For example, as described above, one capability of the WVDS interfacethat is available to a user once the connectivity universe is presentedis to allow a user to interact with a native user interface associatedwith a represented device. In one embodiment, the WVDS supports theability to “open” an active device, thereby enabling the user to send(redirect) input to the active device. In other embodiments, the WVDSsupports the ability to “open” (and redirect input to) any device,regardless of whether it is active or not. In addition, the WVDSsupports the ability to forward screen output from a native interface ofa represented device to a device representation (whether or not thedevice is “active”—depending upon the WVDS configuration settings). Themanner in which the WVDS can implement a native user interface mode of adevice that supports combinations of input redirection and screenforwarding is device, and its underlying operating system, dependent.

Some devices and their native operating systems may support drawingdirectly to a window specified by the WVDS on the host computer display.In situations in which the WVDS doesn't need to process the output, forexample when native device output is presented in full screen mode, theWVDS may, depending upon, for example, configuration settings, providesuch a window and the represented device can directly draw to it.However for other devices, and in situations where the WVDS desires toprocess the output, for example when the WVDS is configured to supportrendering, in which displayed content is sometimes rotated, othertechniques are incorporated. For example, in one embodiment, the WVDSrequests the operating system of the host device to execute a terminalemulator for communicating between the WVDS and the particular device towhich input is being directed and/or from which output is beingreceived. The WVDS also invokes a corresponding host software routine(code) on the particular device's native operating system forcommunicating with the terminal emulator that is executing on the hostdevice. (The device terminal emulator on the host device thuscommunicates with the host software routine on the particular device.)When input redirection is enabled, input received by the WVDS host inputdevices is passed to the terminal emulator, which forwards the input tothe corresponding software routine on the particular device. When screenforwarding is enabled, screen updates (output) that originate on theparticular device are then passed from the corresponding softwareroutine to the terminal emulator executing on the host device, which arethen forwarded through to the WVDS to render them on the display screenrepresentation of the device representation that corresponds to theparticular device. (When the device representation is full screen, theterminal emulator may be able to write directly to a WVDS display“window” thus expediting screen updates.) Other alternativeimplementations are possible.

Some devices, for example, currently cameras, do not support eventerminal emulation capabilities. In such cases, if there are noalternatives for interacting with the native UI of a device, then theWVDS may disable this function for that device or offer an alternativeuser interface.

The user can also “open” an active collection to invoke a native userinterface associated with the collection. In one embodiment, when thecollection resides on the host device, the WVDS directs the hostdevice's operating system to execute the default application fordisplaying (or otherwise presenting) the active collection's content.When the collection resides on a device other than the host device, theWVDS may direct the host device's operating system to execute thedefault application for displaying (or otherwise presenting) the activecollection's content or may use terminal emulation techniques asdescribed above, or other means of communicating with the native UI ofthe device associated with the collection, to present the designatedcollection.

All of the above U.S. patents, U.S. patent application publications,U.S. patent applications, foreign patents, foreign patent applicationsand non-patent publications referred to in this specification and/orlisted in the Application Data Sheet, including but not limited to U.S.Provisional Patent Application No. 60/562,848, entitled “A METHOD ANDSYSTEM FOR MANAGING PERSONAL NETWORK RELATIONSHIPS,” filed Apr. 16,2004, U.S. Provisional Patent Application No. 60/566,507, entitled “AMETHOD AND SYSTEM FOR MANAGING PERSONAL NETWORK RELATIONSHIPS,” filedApr. 29, 2004, U.S. Provisional Patent Application No. 60/630,764,entitled “A METHOD AND SYSTEM FOR MANAGING PERSONAL NETWORKRELATIONSHIPS,” filed Nov. 24, 2004, and U.S. application Ser. No.11/109,483, entitled “GRAPHICAL USER INTERFACE FOR ESTABLISHING DATASHARING RELATIONSHIPS,” filed Apr. 18, 2005, are incorporated herein byreference, in their entirety.

From the foregoing it will be appreciated that, although specificembodiments have been described herein for purposes of illustration,various modifications may be made without deviating from the spirit andscope of the invention. For example, the methods and systems forperforming presentation and rendering discussed herein are applicable toother architectures other than a Microsoft Windows operating systemarchitecture. The methods and systems discussed herein are applicable todiffering protocols, communication media (optical, wireless, cable,etc.) and devices (such as wireless handsets, electronic organizers,personal digital assistants, portable email machines, game machines,pagers, navigation devices such as GPS receivers, etc.).

1. A computer-implemented method for establishing a sharing relationshipbetween collections of data, comprising: displaying, in proximity to afirst object associated with a first device, a user interface forsetting up a data sharing relationship, the user interface capable ofestablishing a two-way sharing relationship between the first object anda second object by connecting a single portion of the displayed userinterface; receiving an indication that the portion of the displayeduser interface has been connected to the second object associated with asecond one of the devices; and in response to the received indication,establishing a sharing relationship between the first object and thesecond object such that, when data content associated with the firstobject changes, the changed data content is automatically reflected indata content associated with the second object.
 2. The method of claim1, further comprising displaying the first and second objects inlocations that are based upon associated access proximitycharacteristics.
 3. The method of claim 1 wherein the receiving theindication that the portion of the displayed user interface has beenconnected to the second object further comprises receiving an indicationthat the portion of the displayed user interface has been dragged to thesecond object via direct manipulation of an input device.
 4. The methodof claim 1, the establishing the sharing relationship between the firstobject and the second object further comprising: establishing asynchronized sharing relationship between the first object and thesecond object such that data content is synchronized between the firstand second objects.
 5. The method of claim 1 wherein the sharingrelationship is established to share at least one of images,photographs, music, contact information or multimedia content.
 6. Themethod of claim 1 wherein, when the data content associated with thefirst object is changed by adding new data content to content associatedwith the first object, the new data content is automatically added tothe data content associated with the second object.
 7. The method ofclaim 1, the establishing the sharing relationship further comprising:establishing a two-way sharing relationship between the first object andthe second object such that, when data content associated with the firstobject changes, the changed data content is automatically reflected inthe data content associated with the second object, and when datacontent associated with the second object changes, the changed datacontent associated with the second object is automatically reflected inthe data content associated with the first object.
 8. The method ofclaim 1, further comprising: automatically reflecting changed datacontent associated with the first object by virtual transfer of thechanged data content to the data content associated with the secondobject.
 9. The method of claim 1, further comprising: associating afunctional agent with at least one endpoint of the established sharingrelationship.
 10. The method of claim 1 wherein the functional agentcomprises at least one of a send new data agent, a filter and sendagent, a receive and store agent, a receive and filter agent, a receiveand display agent, or a receive and notify agent.
 11. The method ofclaim 1 wherein the first object and the second object represent datacollections.
 12. The method of claim 1 wherein the first object and thesecond object represent devices.
 13. The method of claim 12 wherein thechanged data content resides in a data collection.
 14. The method ofclaim 12 wherein the devices are physical devices in the real-world. 15.The method of claim 1 wherein the first object represents a datacollection and the second object represents a device.
 16. The method ofclaim 1 wherein the first object and the second object are not directlyphysically connected to each other.
 17. The method of claim 1 whereinthe first object is the same device as the second object.
 18. The methodof claim 1 wherein the portion of the displayed user interface depictsat least a portion of a cable.
 19. The method of claim 18 wherein the atleast the portion of the cable depicts a plug.
 20. The method of claim19, further comprising: in response to receiving an indication that theportion of the displayed user interface has been moved near a secondobject associated with a second one of the devices, displaying areceptor for the plug.
 21. The method of claim 1, the establishing thesharing relationship between the first object and the second objectfurther comprising: establishing a sharing relationship between thefirst object and the second object such that, when data contentassociated with the first object changes and the data content associatedwith the second object is not accessible, recording the change for latersynchronization such that, when the data content associated with thesecond object becomes accessible, the changed data content isautomatically reflected in data content associated with the secondobject.
 22. The method of claim 1, further comprising: displaying agraphical indication of the established sharing relationship inproximity to the first object.
 23. The method of claim 22, furthercomprising: displaying a graphical indication of the established sharingrelationship in proximity to the second object.
 24. The method of claim22 wherein the graphical indication is an indicator that extends betweenthe first object and the second object.
 25. The method of claim 24wherein the indicator is a representation of a colored cable.
 26. Themethod of claim 22 wherein the indicator indicates a two-way sharingrelationship.
 27. A computer-readable memory medium containinginstructions that, when executed, control a computer processor toestablish a sharing relationship between collections of data, by:displaying, in proximity to a first object associated with a firstdevice, a user interface for setting up a data sharing relationship, theuser interface capable of establishing a two-way sharing relationshipbetween the first object and a second object by connecting a singleportion of the displayed user interface; receiving an indication that aportion of the displayed user interface has been associated with thesecond object that is associated with a second one of the devices; andin response to the received indication, establishing a sharingrelationship between the first object and the second object such that,when data content associated with the first object changes, the changeddata content is automatically reflected in data content associated withthe second object.
 28. The memory medium of claim 27, further comprisinginstructions that, when executed, cause the first and second objects tobe displayed in locations that are based upon associated accessproximity characteristics.
 29. The memory medium of claim 27 wherein thesharing relationship established between the first and second objectcauses data content to be synchronized between the first and secondobjects.
 30. The memory medium of claim 27, the contained instructionsused to share at least one of photographs, images, music, contactinformation, or multimedia content.
 31. The memory medium of claim 27wherein, when the data content associated with the first object ischanged by adding new data content to content associated with the firstobject, instructions are executed to automatically add the new datacontent to the data content associated with the second object.
 32. Thememory medium of claim 27, further comprising instructions that whenexecuted control a computer processor by: when data content associatedwith the second object changes, automatically reflecting the changeddata content associated with the second object in the data contentassociated with the first object.
 33. The memory medium of claim 27,further comprising instructions that when executed control a computerprocessor by: automatically reflecting changed data content associatedwith the first object by virtual transfer of the changed data content tothe data content associated with the second object such that the changeddata content is not actually transferred until an attempt to access thevirtually transferred changed data content is made.
 34. The memorymedium of claim 27, further comprising instructions that when executedcontrol a computer processor by: associating a functional agent with atleast one endpoint of the established sharing relationship.
 35. Thememory medium of claim 27 wherein the functional agent comprises atleast one of a send new data agent, a filter and send agent, a receiveand store agent, a receive and filter agent, a receive and displayagent, or a receive and notify agent.
 36. The memory medium of claim 27wherein the first object and the second object represent datacollections.
 37. The memory medium of claim 27 wherein the first objectand the second object represent devices.
 38. The memory medium of claim37 wherein the devices are physical devices in the real world.
 39. Thememory medium of claim 27 wherein the first object represents a datacollection and the second object represents a device.
 40. The memorymedium of claim 27 wherein the first device is the same device as thesecond device.
 41. The memory medium of claim 27 wherein the portion ofthe displayed user interface depicts at least a portion of a cable. 42.The memory medium of claim 27 wherein the portion of the displayed userinterface is associated with the second object by performing an inputdevice dragging operation on a representation of a cable.
 43. The memorymedium of claim 27 wherein, when data content associated with the firstobject changes and the data content associated with the second object isnot accessible, recording the change for later synchronization suchthat, when the data content associated with the second object becomesaccessible, the changed data content is automatically reflected in datacontent associated with the second object.
 44. The memory medium ofclaim 27, further comprising: displaying a graphical indication of theestablished sharing relationship.
 45. A computer system, comprising: afirst device having a first data collection; a second device having asecond data collection; a user interface that is configured to: displaya first object associated with the first device and a second objectassociated with the second device; display in proximity to the displayedfirst object an indicator of a source endpoint for a data sharingrelationship; when the indicator of the source endpoint is associatedwith the displayed second object, determine whether one-way or two-waydirectional sharing is desired and automatically establish a datasharing relationship between the first data collection and the seconddata collection, such that the first data collection is automaticallyshared with the second data collection according to the determinedone-way or two-way directional sharing.
 46. The system of claim 45wherein the first data collection is automatically synchronized with thesecond data collection in at least one direction by automaticallyreflecting in the second data collection changes occurring to the firstdata collection.
 47. The system of claim 46 wherein the first datacollection is automatically synchronized in two directions with thesecond data collection by automatically reflecting in the first datacollection changes occurring to the second data collection.
 48. Thesystem of claim 45 wherein, when the new data content is added tocontent associated with the first data collection, the new data contentis automatically added to the second data collection.
 49. The system ofclaim 45 wherein the automatic sharing is performed by virtuallytransfer of changed data content associated with the first datacollection to the second data collection.
 50. The system of claim 49wherein actual data transfer of the changed data content associated withthe first data collection occurs when a user attempts to access thevirtually transferred changed data content.
 51. The system of claim 45,the user interface further configured to: associate a functional agentwith at least one endpoint of the established sharing relationship. 52.The system of claim 45 wherein the functional agent comprises at leastone of a send new data agent, a filter and send agent, a receive andstore agent, a receive and filter agent, a receive and display agent, ora receive and notify agent.
 53. The system of claim 45 wherein the userinterface is further configured to display in proximity to the displayedsecond object an indicator of a target endpoint for the data sharingrelationship.
 54. The system of claim 53 wherein the indicator of thetarget endpoint represents a receptacle for a plug.
 55. The system ofclaim 45 wherein the user interface is further configured to display asharing indicator between the displayed first object and the displayedsecond object, thereby indicating the establishment of the sharingrelationship between the first data collection and the second datacollection.
 56. The system of claim 55 wherein the sharing indicator isa representation of a cable that appears to link the first object andthe second object.
 57. The system of claim 56 wherein the sharingindicator represents a colored cable.
 58. The system of claim 45 whereinthe first and second objects are displayed in locations that are basedupon associated access proximity characteristics.
 59. The system ofclaim 45 wherein the synchronized sharing relationship is established toshare at least one of photographs, images, music, contact information,or multimedia content.
 60. The system of claim 45 wherein the firstobject and the second object represent the first data collection andsecond data collection, respectively.
 61. The system of claim 45 whereinthe first object and the second object represent the first device andthe second device, respectively.
 62. The system of claim 45 wherein thefirst object represents a data collection and the second objectrepresents a device.
 63. The system of claim 45 wherein the first deviceand the second device are connected via a network.
 64. The system ofclaim 45 wherein the first device is the same device as the seconddevice.
 65. The system of claim 45 wherein the indicator of the sourceendpoint depicts a plug of a cable.
 66. The system of claim 45 whereinthe portion of the displayed user interface is associated with thesecond object by performing an input device dragging operation on arepresentation of a cable.
 67. The system of claim 45, the userinterface further configured to: when data content associated with thefirst data collection changes and the second data collection is notaccessible, recording the change for later synchronization such that,when the second data collection becomes accessible, the changed datacontent is automatically reflected in the second data collection.